\section{Introduction}
L'objectif de ce projet est de mettre en oeuvre, sur un cas pratique, les notions et les acquis vus dans le module de système d'exploitation.
Le but est dans un premier temps de construire une bibliothèque de gestion de threads proposant un ordonnancement coopératif (non pas préemptif). On devra donc tout d'abord définir une interface de threads permettant de créer, détruire, passer la main, passer la main à un thread particulier, attendre la/une terminaison, de manière à empêcher tout appel système d'un thread vers le noyau. Les threads ne communiqueront alors plus qu'avec les processus. Aussi, on veillera à rester relativement proche de \textit{pthread.h} afin de pouvoir facilement comparer les deux implémentations avec des programmes similaires. 
